import request from "@/utils/request";

const TRANSACTION_BASE_URL = "/rest/server/transaction";

const TransactionAPI = {
  /** checkout 接口*/
  checkout(data: StripeCheckoutData) {
    return request<any, StripeCheckoutResult>({
      url: `${TRANSACTION_BASE_URL}/checkout`,
      method: "post",
      data: data,
      headers: { "Content-Type": "application/json;charset=utf-8" },
    });
  },
  /** list 接口*/
  list(queryParams: TransactionPageQuery) {
    return request<any, PageResult<TransactionVO[]>>({
      url: `${TRANSACTION_BASE_URL}/list`,
      method: "get",
      params: queryParams,
    });
  },
};

export default TransactionAPI;

/** checkout */
export interface StripeCheckoutData {
  /** 商品数量 */
  quantity: number;
  /** 商品id */
  id: number;
}

/** stripe checkout响应 */
export interface StripeCheckoutResult {
  /** 客户端验证 */
  sessionId: string;
}

/**
 * 支付查询对象
 */
export interface TransactionPageQuery extends PageQuery {
  /** 开始时间 */
  createTime?: [string, string];
}

/**
 * 支付VO对象
 */
export interface TransactionVO {
  /** id */
  id: string;
  /** 币种 */
  currency: string;
  /** 金额（元） */
  amount: string;
  /** 数量 */
  quantity: number;
  /** 支付类型 */
  paymentMethod: string;
  /** 支付状态 */
  status: string;
  /** 支付时间 */
  transactionTime: Date;
  /** 创建时间 */
  createdAt: Date;
}
